// 1. 编写Bomb构造函数
function Bomb() {
  this.timerId = null; // 保存定时器ID（用于取消）
}

// 2. 给Bomb原型添加start方法（启动定时器，3秒后“爆炸”）
Bomb.prototype.start = function() {
  // 保存this（避免setTimeout回调中this指向改变）
  const self = this;
  // 启动定时器：3000毫秒（3秒）后执行回调
  this.timerId = setTimeout(() => {
    console.log(`炸弹 ${this} 爆炸！`);
  }, 3000);
  console.log(`炸弹 ${this} 已启动，3秒后爆炸...`);
};

// 3. 给Bomb原型添加clear方法（取消定时器）
Bomb.prototype.clear = function() {
  if (this.timerId) {
    // 取消定时器（传入定时器ID）
    clearTimeout(this.timerId);
    console.log(`炸弹 ${this} 已取消，不会爆炸！`);
    this.timerId = null; // 清空ID（避免重复取消）
  }
};

// 4. 实例化两个炸弹对象
const b1 = new Bomb();
const b2 = new Bomb();

// 5. 启动两个炸弹
b1.start();
b2.start();

// 6. 1秒后取消b2（setTimeout延迟1000毫秒执行）
setTimeout(() => {
  b2.clear();
}, 1000);